Method and system for creating electronic circuitry

ABSTRACT

According to a first model of an operation of circuitry, a first set of estimates of the operation is generated in response to a set of conditions, including a first estimate of the operation in response to a first condition. According to a second model of the operation, a second set of estimates of the operation is generated in response to the first condition and the first set. In response to a comparison between the first estimate and the second set, a subset of the first set is selected. According to the second model, an estimate of the operation is generated in response to a second condition and the selected subset.

BACKGROUND

[0001] Increasing density, complexity and speed of integrated electroniccircuitry has resulted in a need for higher accuracy tools that supportcreation of designs for such circuitry, along with a need for higherspeed tools to accommodate restricted schedules for creating suchdesigns. One type of tool is a characterization tool for characterizingvarious cells of the circuitry. A cell is, for example, a component thatperforms a logical operation within the circuitry.

[0002] A characterization tool outputs characterization information thatdescribes a cell's operations in response to various conditions. Inresponse to such characterization information, a human designer maypredict whether the circuitry will meet performance requirements. Ifsuch characterization information is inaccurate, the designer'sprediction may likewise be inaccurate. If a design is manufactured basedupon an inaccurate prediction, significant wasted time and monetaryexpense may be incurred.

[0003] SPICE is a generic name of a tool that includes a softwareprogram for modeling, in a relatively accurate manner, operations ofcells in response to specified conditions. To achieve such accuracy,SPICE consumes a relatively high level of computational resources.Accordingly, execution of SPICE may result in substantial time delays.

[0004] In view of such delays, practical limits are imposed on theextent to which a human designer may rely upon SPICE for modeling acell's operations in response to a wide variety of conditions. Ratherthan using SPICE for modeling a cell's operations in response to alllikely conditions, a previous technique relies upon the designer tospecify a number of representative conditions. According to such atechnique, SPICE is executed for modeling the cell's operations inresponse only to the specified conditions.

[0005] A different tool, which is less computationally-intensive thanSPICE, is executed for modeling the cell's operations in response toother conditions, thereby conserving computational resources and time.Nevertheless, unless the designer already knows the expected operationsof the cell in response to various conditions, it is difficult and, insome cases, impractical for the designer to accurately determine whichconditions should be specified as being the most representative.Accordingly, a cell's operations as estimated by the different tool maydeviate by more than two percent (2%) from the cell's operation asestimated by SPICE. For conditions distant from the specifiedconditions, the deviations between SPICE estimates and the differenttool's estimates may reach ten percent (10%) or more.

[0006] Accordingly, a need has arisen for a method and system forcreating electronic circuitry, in which cells of the circuitry arecharacterized with higher accuracy relative to previous techniques.Also, a need has arisen for a method and system for creating electroniccircuitry, in which cells of the circuitry are characterized with higherspeed relative to previous techniques.

SUMMARY

[0007] According to a first model of an operation of circuitry, a firstset of estimates of the operation is generated in response to a set ofconditions, including a first estimate of the operation in response to afirst condition. According to a second model of the operation, a secondset of estimates of the operation is generated in response to the firstcondition and the first set. In response to a comparison between thefirst estimate and the second set, a subset of the first set isselected. According to the second model, an estimate of the operation isgenerated in response to a second condition and the selected subset.

[0008] It is a technical advantage that cells of the circuitry arecharacterized with higher accuracy relative to previous techniques.

[0009] It is another technical advantage that cells of the circuitry arecharacterized with higher speed relative to previous techniques.

BRIEF DESCRIPTION OF THE DRAWING

[0010] An illustrative embodiment and its advantages are betterunderstood by referring to the following descriptions and accompanyingdrawing, in which:

[0011]FIG. 1 is a block diagram of a system for processing informationaccording to the illustrative embodiment;

[0012]FIG. 2 is a graph of an example curve for illustrating a conceptof the illustrative embodiment;

[0013]FIG. 3 is a schematic electrical circuit diagram of a 3-input NANDgate for illustrating a concept of the illustrative embodiment;

[0014]FIG. 4 is a graph of voltages at nodes of the NAND gate of FIG. 3,as a function of time;

[0015]FIG. 5 is a schematic electrical circuit diagram of a driving celland a characterized cell;

[0016]FIG. 6 is a schematic electrical circuit diagram of a modifiedversion of the circuitry of FIG. 5;

[0017]FIG. 7 is first graph of response time r as a function of C_(l)and t_(r);

[0018]FIG. 8 is second graph of response time r as a function of C_(l)and t_(r);

[0019]FIG. 9 is a table of information entries of the illustrativeembodiment;

[0020]FIG. 10 is an illustration of a first multi-stage version of thetechnique of the illustrative embodiment;

[0021]FIG. 11 is an illustration of a second multi-stage version of thetechnique of the illustrative embodiment;

[0022]FIG. 12 is a first graph of average percentage error as a functionof C_(l) and t_(r);

[0023]FIG. 13 is a second graph of average percentage error as afunction of C_(l) and t_(r); and

[0024]FIG. 14 is a schematic electrical circuit diagram of circuitry,including a biased path, created according to the illustrativeembodiment.

DETAILED DESCRIPTION

[0025] An illustrative embodiment and its advantages are betterunderstood by referring to FIGS. 1-14 of the drawing.

[0026]FIG. 1 is a block diagram of a system, indicated generally at 100,for processing information according to the illustrative embodiment.System 100 includes input devices 104, a display device 106, a printdevice 108, and a computer 102 for executing processes and performingoperations (e.g. communicating information) in response thereto asdiscussed further hereinbelow. Computer 102 is connected to inputdevices 104, display device 106 and print device 108. Display device 106is, for example, a conventional electronic cathode ray tube. Printdevice 108 is, for example, a conventional electronic printer orplotter.

[0027] Moreover, system 100 includes a computer-readable medium (orapparatus) 110, such as a floppy computer diskette or a computer harddrive. Computer-readable medium 110 and computer 102 are structurallyand functionally interrelated with one another as described furtherhereinbelow. Computer-readable medium 110 stores (or encodes, orrecords, or embodies) functional descriptive material (e.g. includingbut not limited to computer programs (also referred to as computerapplications) and information structures). Such functional descriptivematerial imparts functionality when encoded on computer-readable medium110. Also, such functional descriptive material is structurally andfunctionally interrelated to computer-readable medium 110.

[0028] Within such functional descriptive material, informationstructures define structural and functional interrelationships betweensuch information structures and computer-readable medium 110 (and otheraspects of system 100). Such interrelationships permit the informationstructures' functionality to be realized. Also, within such functionaldescriptive material, computer programs define structural and functionalinterrelationships between such computer programs and computer-readablemedium 110 (and other aspects of system 100). Such interrelationshipspermit the computer programs' functionality to be realized.

[0029] For example, computer 102 reads (or accesses, or copies) suchfunctional descriptive material into a computer memory of computer 102,and computer 102 performs its operations (as described elsewhere herein)in response to such material which is stored in such computer memory.More particularly, computer 102 performs the operation of processing acomputer application (that is stored, encoded, recorded or embodied on acomputer-readable medium) for causing computer 102 to perform additionaloperations (as described elsewhere herein). Accordingly, such functionaldescriptive material exhibits a functional interrelationship with theway in which computer 102 executes its processes and performs itsoperations.

[0030] Further, the computer-readable medium is an apparatus from whichthe computer application is accessible by computer 102, and the computerapplication is processable by computer 102 for causing computer 102 toperform such additional operations. In addition to reading suchfunctional descriptive material from computer-readable medium 110,computer 102 is capable of reading such functional descriptive materialfrom (or through) a network (not shown in FIG. 1) which is also acomputer-readable medium (or apparatus). Moreover, the computer memoryis itself a computer-readable medium (or apparatus).

[0031] A human user 112 and computer 102 operate in association with oneanother. For example, in response to signals from computer 102, displaydevice 106 displays visual images, and user 112 views such visualimages. Also, in response to signals from computer 102, print device 108prints visual images on paper, and user 112 views such visual images.Further, user 112 operates input devices 104 in order to outputinformation to computer 102, and computer 102 receives such informationfrom input devices 104.

[0032] Input devices 104 include, for example, a conventional electronickeyboard and a pointing device such as a conventional electronic“mouse”, rollerball or light pen. User 112 operates the keyboard tooutput alphanumeric text information to computer 102, and computer 102receives such alphanumeric text information from the keyboard. User 112operates the pointing device to output cursor-control information tocomputer 102, and computer 102 receives such cursor-control informationfrom the pointing device.

[0033] In the performance by system 100 of operations in accordance withthe techniques (as discussed further hereinbelow) of the illustrativeand alternative embodiments, display device 106 displays the visualimages of FIGS. 2 through 14 in response to signals from computer 102,and print device 108 prints such visual images on paper in response tosignals from computer 102.

[0034]FIG. 2 is a graph, indicated generally at 250, of an example curve302, for illustrating such a concept of the illustrative embodiment. Itis important for system 100 to accurately perform cell characterizationby modeling (or “describing”) the cell's timing properties. Also, indesigning integrated circuitry, a human designer specifies timingconstraints that apply to the integrated circuitry. In response to suchconstraints and cell characterization information, automated computersoftware performs synthesis and timing verification operations tocompile and validate a gate-level design (“netlist”) of the cell.Accordingly, accurate cell characterization is important for meetingperformance goals in deep-submicron designs.

[0035] For example, the operations of integrated circuitry cells may becharacterized (or “represented” or “described” or “modeled”) bymathematical equations (“characteristic equations”) and otherinformation (collectively referred to as “cell characterizationinformation”). A characterization table includes multiple characteristicequations, which may be relatively simple fixed-form equations, in amanner analogous to the representation of complex functions by piecewiselinear approximations of curves.

[0036] Alternatively, operations of such cells may be characterized by asingle monolithic characteristic equation, both in terms of cellnode-to-pin delay as well as the transition time of the signal at theoutput node. Nevertheless, such a single monolithic equation likely isrelatively complex and often involves square and logarithmic terms formodeling inherent nonlinearities of the cell's propagation delay andoutput transition time. For example, the single monolithiccharacteristic equation may have nonlinear elements for accuratelyrepresenting inherent nonlinearities in the operations of such cells.Such a characteristic equation may have product and log terms on thefunction variables and may include a few coefficients or many (e.g. 20or more) coefficients.

[0037] Unlike a single monolithic characteristic equation, thecharacterization table of the illustrative embodiment is amulti-dimensional table for representing the cell's operation(s) inresponse to (or “as a function of”) various types and ranges ofconditions (e.g. input transition time, output capacitive loading(“output load”), temperature, voltage and process). Instead of usingonly a single set of coefficients to describe the cell's operation(s),the characterization table includes multiple sets ofcoefficients/equations to describe the cell's operation(s) acrossvarious ranges of conditions (e.g. various ranges of input transitiontime, output load, temperature, voltage and process). In such a manner,characterization tables form piecewise linear approximations of acomplex curve. In a significant aspect of the illustrative embodiment,for accuracy within the characterization table, system 100 selectscharacterization points within regions of the complex curve that aremost non-linear.

[0038] In the illustrative embodiment, system 100 executes softwareprograms for simulating a cell's operation as a function of theconditions of input transition time and output load. In alternativeembodiments, system 100 executes a software program for simulating acell's operation as a function of at least three types of conditions.For example, in one alternative embodiment, system 100 executes asoftware program for simulating a cell's operation as a function ofoutput load and at least two types of input transition time conditions,namely a clock signal's input transition time and an operand signal'sinput transition time.

[0039] As an example in the illustrative embodiment, for determining (or“measuring”) the cell's operation(s) in response to a specifiedcombination of input transition time and output load, system 100executes a software program for simulating the cell's operation(s)(“circuit simulator”) such as a software simulation program withintegrated circuit emphasis (“SPICE”). Nevertheless, as a result ofconstraints on time and computer resources (e.g. computer memory andexecution time), it is not practical for system 100 to measure thecell's operation(s) in response to all likely input transition times andoutput loads.

[0040] Instead, system 100 measures the cell's operation(s) in responseto a preselected number of input transition times and output loads. Acombination of a particular input transition time and a particularoutput load may be referred to as a characterization point. By prudentlyselecting the characterization points, system 100 creates an accuratecharacterization table while reducing the table's size.

[0041] In a significant aspect of the illustrative embodiment, system100 performs dynamic programming and oversampling operations forcreating such a characterization table, as discussed furtherhereinbelow. Advantageously, system 100 performs such operations bymeasuring and recording the cell's operation(s) in response to a subsetof all likely input transition times and output loads. Such a goalpresents significant challenges which are addressed by system 100.

[0042] For example, referring to FIG. 2, it is not practical for system100 to measure y (e.g. an operation of a cell, such as the cell's outputresponse (or “transition”) time or the cell's propagation delay) inresponse to every possible value of x (e.g. a characteristic of thecell, such as the cell's output load or the cell's input transitiontime). Instead, in the example of FIG. 2, system 100 measures y inresponse to x only at five points, namely points 304, 306, 308 a, 310and 312. If y is unmeasured in response to a particular value of x,system 100 determines y in response to selected pair of measured points304, 306, 308 a, 310 and 312 that most closely bound the particularvalue of x. More particularly, system 100 interpolates between theselected pair in order to determine the unmeasured y in response to theparticular value of x. By performing such interpolation, system 100estimates the cell's operation.

[0043] In FIG. 2, y is unmeasured in response to x=X1. In this example,if system 100 had executed SPICE to measure y in response to X1, system100 would have measured y=Y1A. Nevertheless, because y is unmeasured inresponse to x=X1, system 100 determines y in response to selected pairof measured points 304, 306, 308 a, 310 and 312 that most closely boundX1. Accordingly, in the example of FIG. 2, system 100 selects the pairof measured points 306 and 308 a, because such points (among themeasured points) most closely bound X1. After selecting the pair ofmeasured points 306 and 308 a, system 100 interpolates between theselected pair in order to determine the unmeasured y in response to X1.By performing such interpolation, system 100 estimates y=Y1B. An errorE1=(Y1B−Y1A) results from such interpolation, as indicated in FIG. 2.

[0044] It is important to carefully select the points which are to bemeasured and stored in a characterization table, because system 100relies upon such measured points in order to accurately estimate thecell's operation(s) in response to particular unmeasured points. Arandom sampling of points (which are to be measured and stored) is notpreferred. This is because a random sampling may result in relativelylow accuracy when system 100 interpolates between the measured points.

[0045] For example, in FIG. 2, if measured point 308 a is replaced by ameasured point 308 b, then system 100 selects the pair of measuredpoints 306 and 308 b as the measured points most closely bounding X1.After selecting the pair of measured points 306 and 308 b, system 100interpolates between the selected pair in order to determine theunmeasured y in response to X1. By performing such interpolation, system100 estimates y=Y1C. An error E2=(Y1C−Y1A) results from suchinterpolation, as indicated in FIG. 2. Advantageously, E1 is smallerthan E2, as a result of system 100 measuring point 308 a instead ofpoint 308 b. This example helps explain the importance of system 100carefully selecting the points that system 100 measures and stores in acharacterization table.

[0046]FIG. 3 is a schematic electrical circuit diagram of a 3-input NANDgate 350 for illustrating a concept of the illustrative embodiment. NANDgate 350 has input nodes A, B, and C. Also, NAND gate 350 has an outputnode Y.

[0047] Propagation delay (t_(d)) and output transition time (t_(out))are a function of input transition time (t_(in)) and capacitive load(C_(l)). Accordingly, system 100 characterizes a cell by executing SPICEin response to information, such as information representing a voltagestimulus at an input node, a capacitive load (C_(l)) at the output node,and constant voltages (e.g. voltages V_(CC) or V_(SS)) or transitioning(e.g. rising or falling) voltages at non-characterized nodes. VoltageV_(CC) represents a true binary logic 1 state of a supply voltage node402. Voltage V_(SS) represents a false binary logic 0 state of areference (“ground”) voltage node (not shown in FIG. 3).

[0048] For example, in characterizing a delay between “characterized”nodes A and Y, system 100 executes SPICE in response to informationrepresenting a constant voltage V_(CC) at non-characterized nodes B andC. In such a situation where A and Y are the characterized nodes, system100 characterizes the operation of NAND gate 350 as an inverter havinginput node A and output node Y.

[0049]FIG. 4 is a graph, indicated generally at 450, of voltages atnodes A and Y, as a function of time. For characterizing the delaybetween nodes A and Y, system 100 executes SPICE for determining outputtransition time (t_(out)) at node Y and propagation delay (t_(d))between nodes A and Y, as shown in FIG. 4, in response to (a) an inputvoltage at node A having a preselected input transition time (t_(in))and (b) a preselected capacitive load at node Y. System 100 performssuch characterization in response to a variety of different values ofinput transition time at node A, plus a variety of different values ofcapacitive load at node Y.

[0050] In the illustrative embodiment, system 100 measures t_(d) at the50% point of V_(CC). Also, in the illustrative embodiment, system 100measures t_(in) and t_(out) along the substantially linear region of thevoltage transition, normally between the 10% and 90% points (or,alternatively, between the 20% and 80% points) of V_(CC).

[0051] System 100 determines and stores such characterizationinformation for various types of cells. For each type of cell, system100 performs such characterization in response to informationrepresenting a voltage stimulus at an input node, a capacitive load atthe output node, and constant voltages at non-characterized nodes, suchthat system 100 determines variable voltages at characterized nodes.System 100 performs such characterization for various combinations ofinput nodes and output nodes. More particularly, while system 100characterizes a particular input node in combination with a particularoutput node, other input nodes and other output nodes arenon-characterized (e.g. system 100 represents such other input nodes ashaving constant voltages).

[0052] Further, system 100 performs (and stores) such characterizationmultiple times in response to a variety of different values of inputtransition time at the characterized input node, plus a variety ofdifferent values of capacitive load at the characterized output node(which is being characterized in combination with the characterizedinput node). This is advantageous relative to previous techniques thatcharacterize only a small number (e.g. 4) of values for such capacitiveload C_(l), each in combination with only a single respective inputtransition time. Moreover, according to some previous techniques, foreach value of C_(l), the single respective input transition time is theaverage of a few (e.g. 4) input transition times, each of which ismeasured in response to a different value of capacitive loadC_(rise/fall) at the characterized input node.

[0053] For each characterized input node, system 100 performs thecharacterization (a) first, in response to information representing arising voltage stimulus at the characterized input node, and (b) second,in response to information representing a falling voltage stimulus atthe characterized input node. In that manner, for each characterizedinput node, system 100 characterizes t_(in) in two forms, namely (a)t_(in)=t_(LHi) for a low-to-high transition and (b) t_(in)=t_(HLi) for ahigh-to-low transition. Likewise, in that manner, for each characterizedoutput node, system 100 characterizes t_(out) in two forms, namely (a)t_(out)=t_(LH) _(o) for a low-to-high transition and (b) t_(out)=t_(HL)_(o) for a high-to-low transition.

[0054] Generally, cells are either unate or binate. For a binate cell,such as an exclusive OR (“XOR”) gate, polarity (i.e. either t_(LH) _(o)or t_(HL) _(o) ) of t_(out) is a function not only of polarity (i.e.either t_(LHi) or t_(HLi)) of t_(in), but also of respective conditionsat one or more non-characterized nodes, such as (a) whether one or morenon-characterized nodes is respectively biased to a true binary logic 1state or instead to a false binary logic 0 state and/or (b) whether oneor more non-characterized nodes receives a respective signal having apositive (e.g. rising voltage) transition or instead a negative (e.g.falling voltage) transition. Accordingly, for each characterized binatecell, system 100 performs such characterization in response toinformation representing various sets of conditions at non-characterizednodes, so that all states of the cell are characterized.

[0055] For example, in characterizing an XOR gate having input nodes Aand B and an output node Y, system 100 performs such characterizationfor characterized nodes A and Y (a) first, in response to a constantvoltage V_(CC) at node B, and (b) second, in response to a constantvoltage V_(SS) at node B. When node B has a constant voltage V_(SS), theXOR gate operates as a buffer. In contrast, when node B has a constantvoltage V_(CC), the XOR gate operates as an inverter.

[0056] In the process of designing and creating integrated electroniccircuitry, human designers and computers may create a library of logicfunctionality, rather than designing each logic gate individually. Fromthe library, human designers and computers may select components forimplementing logical functionality within the physical integratedelectronic circuitry. Such a library is sometimes referred to as astandard cell library, and it forms a basic building block for designand creation of the circuitry. System 100 characterizes the propagationdelay and output transition time of standard cells in such a library.

[0057] Cell libraries also include cell timing characteristics forperforming static and dynamic timing analysis. Within such a library,the number of cells varies, as does the type of cell functionality. Sucha library may include, for example, as many as 40 to 50 different typesof boolean functions. Each boolean function may have multiple sizes or“drive strengths”.

[0058] For example, a library may include 6 to 8 different types ofinverters. Relative to a large inverter, a small inverter has a smallerinput node capacitance, intrinsic delay, and area. Relative to a smallinverter, a large inverter can drive a greater number of capacitiveloads or a longer interconnect route. Preferably, circuitry is designedand created to minimize area and/or timing while satisfying the imposeddesign constraints. Thus, a library preferably includes variouscomponents to enable selection among a wide range of drive strengths andfunctionality.

[0059] Cells may be named according to their functionality and drivestrength. For example, a library may contain inverters named INV_A,INV_B, INV_C, INV_D, INV_E, and INV_F. Drive strengths are meaningfulindicators and may be shared across different functions. For example,all cells with a drive strength of D may be capable of driving asubstantially equal amount of capacitive load.

[0060] In the illustrative embodiment, system 100 characterizes a cellwithin a library by executing SPICE for determining propagation delaysand output transition times of the characterized cell. In response tothese determined times and delays, system 100 further determines valuesof coefficients in a characteristic equation (or in multiplecharacteristic equations within a characterization table), according toa generalized curve-fitting technique such as least-squares.Characterization models of the illustrative embodiment include a drivingcell (e.g. an inverter or buffer), in addition to the characterizedcell.

[0061] Although a driving cell may be modeled (or “represented”) as aform of ideal voltage supply with a current-limiting resistor, inputtransition times are not fully linear. This is because characterizedcells would not usually receive fully linear voltages at their inputnodes. Thus, such an ideal voltage supply is not a preferred model.

[0062]FIG. 5 is a schematic electrical circuit diagram, indicatedgenerally at 550, of a driving cell 602 and a characterized cell 604. InFIG. 5, an output node 606 of driving cell 602 is coupled to an inputnode 608 of characterized cell 604. In response to a voltage V_(in) atan input node 610 of driving cell 602, along with a varying capacitiveload C_(rise/fall) at output node 606, voltages having transition timesof varying length are generated at output node 606.

[0063] In response to V_(in) transitioning from a first voltage(representing a first logic state) to a second voltage (representing asecond logic state) in a substantially linear manner, driving cell 602outputs (or “generates”) a voltage signal at output node 606. Aparticular transition time of such a voltage signal (at output node 606)is achieved by selecting a suitable value of C_(rise/fall). Becauseoutput node 606 is coupled to input node 608, voltages generated atoutput node 606 are likewise generated at input node 608. Moreover, inthe illustrative embodiment, system 100 characterizes a cell in responseto a variety of different values of C_(rise/fall) and C_(l) (i.e.capacitive load at an output node 612 of characterized cell 604.

[0064]FIG. 6 is a schematic electrical circuit diagram, indicatedgenerally at 650, of a modified version of circuitry 550. As indicatedin FIG. 6, input node 608 has an intrinsic capacitance C_(in).Accordingly, a shortcoming of the model of FIG. 5 is that a value ofC_(in) varies according to the transition time of the voltage generatedat output node 606. Thus, with the model of FIG. 5, it is difficult toselect a suitable value of C_(rise/fall) for achieving a particulartransition time.

[0065] By comparison, in the model of FIG. 6, driving cell 602 iselectrically isolated from characterized cell 604. Circuitry 650includes a voltage-controlled-voltage-source (“VCVS”) for generating avoltage signal at input node 608 which is substantially equal to thevoltage signal generated at output node 606. With the model of FIG. 6, asuitable value of C_(rise/fall) is more readily determined to achieve aparticular transition time of the voltage signals at nodes 606 and 608.

[0066]FIG. 7 is graph, indicated generally at 700, of response time r asa function of C_(l) and t_(r), where r=t_(out) or t_(d), and wheret_(r)=t_(in) (i.e. either t_(LHi) or t_(HLi)). FIG. 7 shows fourcharacterization points, namely (t_(r) ⁺, C_(l) ⁺), (t_(r) ⁺, C_(l) ⁻),(t_(r) ⁻, C_(l) ⁺), (t_(r) ⁻, C_(l) ⁻) most closely adjacent (or“proximate”) to a point X. In this example, system 100 has executedSPICE for a particular “to-be-characterized” cell to determinerespective values of r in response to the respective values of t_(r) andC_(l) which define characterization points (t_(r) ⁺, C_(l) ⁺), (t_(r) ⁺,C_(l) ⁻), (t_(r) ⁻, C_(l) ⁺), (t_(r) ⁻, C_(l) ⁺), but system 100 has notexecuted SPICE to determine a value of r in response to the particularvalues of t_(r) and C_(l) which define point X. System 100 stores suchdetermined values of r (associated with characterization points (t_(r)⁺, C_(l) ⁺), (t_(r) ⁺, C_(l) ⁻), (t_(r) ⁻, C_(l) ⁺), (t_(r) ⁻, C_(l) ⁺),in a characterization table.

[0067] Nevertheless, it may be helpful for system 100 to accuratelydetermine an estimated value of r at point X. For example, system 100may execute a static timing analysis software package in response tosuch estimate, in order to analyze timing interrelationships betweenmultiple characterized cells that are coupled to one another withinintegrated electronic circuitry. In performing such analysis, the statictiming analysis software package may incorporate various predeterminedassumptions regarding the operations of such integrated electroniccircuitry. Before executing the static timing analysis software packagein response to the estimated value of r (at point X), accuracy isenhanced by determining such estimated value of r (at point X) in amanner consistent with such predetermined assumptions.

[0068] For example, one such predetermined assumption is therelationship between r, t_(r) and C_(l). Such relationship may beexpressed in the form of a characteristic equation. Thus, accuracy isenhanced by estimating the value of r at point X in a manner consistentwith such characteristic equation.

[0069] One static timing analysis software package is commerciallyavailable from Synopsys, having an address at 700 East Middlefield Rd.,Mountain View, Calif. 94043, a telephone number (650) 962-5000, and aglobal computer network address of www.synopsys.com. Such a package usesthe following characteristic equation to express the relationshipbetween r, t_(r) and C_(l).

r=ƒ(t _(r,) C _(l))=A * t _(r) +B * C _(l) +C * t _(r) * C _(l) +D  (1)

[0070] Accordingly, system 100 is able to determine r at point X in amanner consistent with such characteristic equation, and withoutexecuting SPICE for point X. More particularly, system 100 identifiesthe aforementioned four characterization points that are most closelyadjacent to point X, such that:

[0071] C_(l) ⁻≦C_(l)≦C_(l) ⁺

[0072] t_(r) ⁻≦t_(r)≦t_(r) ⁺

[0073] These four characterization points identify four entries in thecharacterization table, namely:

[0074] r⁻⁻=table (t_(r) ⁻, C_(l) ⁻)

[0075] r⁺⁻=table (t_(r) ⁺, C_(l) ⁻)

[0076] r⁻⁺=table (t_(r) ⁻, C_(l) ⁺)

[0077] r⁺⁺=table (t_(r) ⁺, C_(l) ⁺)

[0078] Then, system 100 determines real numbers A, B, C and D (i.e.constant elements) of the characteristic equation in response to theidentified four characterization points (i.e. system 100 uses the fourcharacterization points to solve for the four unknowns of suchcharacteristic equation), such that: ${\begin{bmatrix}t_{r}^{-} & C_{l}^{-} & {t_{r}^{-}*C_{l}^{-}} & 1 \\t_{r}^{+} & C_{l}^{-} & {t_{r}^{+}*C_{l}^{-}} & 1 \\t_{r}^{-} & C_{l}^{+} & {t_{r}^{-}*C_{l}^{+}} & 1 \\t_{r}^{+} & C_{l}^{+} & {t_{r}^{+}*C_{l}^{+}} & 1\end{bmatrix}\begin{bmatrix}A \\B \\C \\D\end{bmatrix}} = \begin{bmatrix}r^{--} \\r^{+ -} \\r^{- +} \\r^{++}\end{bmatrix}$

[0079] After determining A, B, C and D, system 100 determines a value ofr (in response to the particular values of t_(r) and C_(l) which definepoint X) in accordance with such characteristic equation and suchdetermined values of A, B, C and D.

[0080] As explained further hereinabove in connection with FIG. 2, it isimportant to carefully select the points to be characterized by system100. This is because some characterization points (in comparison toother possible characterization points) will enable system 100 to moreaccurately determine an estimated value of r (in response to theparticular values of t_(r) and C_(l) which define point X). By moreaccurately determining this estimated value of r, system 100 moreaccurately executes the static timing analysis software package inresponse to such estimate, so that system 100 more accurately analyzestiming interrelationships between multiple characterized cells that arecoupled to one another within integrated electronic circuitry.

[0081]FIG. 8 is a graph, indicated generally at 800, of response time ras a function of C_(l) and t_(r). In the following example, system 100selects characterization points from among 2500 candidate points alongsurface 902. Nevertheless, the manner in which the number of candidatepoints is adjustable will be readily apparent. By selectingcharacterization points from among a number of candidate points, system100 performs oversampling and pruning operations as discussed furtherhereinbelow.

[0082] Accordingly, in the example of FIG. 8, four points (t_(r(0)),C_(l(0))), (t_(r(0)), C_(l(49))), (t_(r(49)), C_(l(0))) and (t_(r(49)),C_(l(49))) define the corner points of a surface 902. Surface 902represents r=f(C_(l), t_(r)), where f(C_(l), t_(r)) is a characteristicequation such as equation (1) discussed further hereinabove inconnection with FIG. 7 (or, alternatively, where f(C_(l), t_(r)) is acharacterization table). In a significant aspect of the illustrativeembodiment, system 100 determines a respective combination of t_(r(0)),C_(l(0)), t_(r(49)) and C_(l(49)) separately (e.g. independently,individually) for each characterization table of each characterizedcell.

[0083] For example, for a unate cell, system 100 creates a respectiveset of characterization tables for a particular combination of an inputnode and an output node. Each set of characterization tables includes(a) a first table for output transition time (t_(out)) at thecharacterized output node in response to a variety of different valuesof C_(l) and t_(in)=t_(LHi), (b) a second table for output transitiontime (t_(out)) at the characterized output node in response to a varietyof different values of C_(l) and t_(in)=t_(HLi), (c) a third table forpropagation delay (t_(d)) between the characterized input and outputnodes in response to a variety of different values of C_(l) andt_(in)=t_(LHi), and (d) a fourth table for propagation delay (t_(d))between the characterized input and output nodes in response to avariety of different values of C_(l) and t_(in)=t_(HLi). For a binatecell, system 100 creates additional characterization tables inaccordance with the discussion further hereinabove in connection withFIG. 4.

[0084] In the illustrative embodiment, the value of C_(l(0)) is either(a) specified by human user 112 of system 100 or (b) initialized (or“established”) at zero by system 100. Also, system 100 determines thevalue of t_(r(49)) in response to a maximum acceptable output transitiontime for the characterized output node (as specified by human user 112).Further, system 100 executes SPICE for determining the value ofC_(l(49)) as a function of t_(r(49)). Moreover, system 100 establishesthe value of t_(r(0)) as being equal to the shortest transition time (ofa voltage output by a driving cell, such as the voltage output at node606 by cell 602 of FIG. 6) achieved by driving cells of the particularcell library being characterized.

[0085] As mentioned hereinabove, in this example, system 100 selectscharacterization points from among 2500 (i.e. N², where N=50) candidatepoints along surface 902. Accordingly, system 100 identifies suchcandidate points as (t_(r(A)), C_(l(B))), where A is an integer numberranging between 0 and N−1, and B is an integer number ranging between 0and N−1. (Notably, integers A and B are distinct from real numbers A andB of equation (1) discussed further hereinabove in connection with FIG.7.) In the illustrative embodiment, the values of t_(r(A)) aret_(r(0)) * 10^((A*F)), and the values of C_(l(B)) are C_(l(0)) *10^((A*G)), where:

[0086] F=|log (t_(r(49)))−log (t_(r(0)))|÷(N−1)

[0087] G=|log (C_(l(49)))−log (C_(l(0)))|÷(N−1)

[0088] Advantageously, such logarithmic terms help ensure that morecandidate points are located at lower values of t_(r) and C_(l), wheresurface 902 is more likely to be curved.

[0089] In an alternative embodiment for distributing candidate pointsmore evenly along surface 902, the values of t_(r(A)) are t_(r(0))+(A *J), and the values of C_(l(B)) are C_(l(0))+(A * K), where:

[0090] J=|t_(r(49))−t_(r(0))|÷(N−1)

[0091] K=|C_(l(49))−C_(l(0))|÷(N−1)

[0092] In the illustrative embodiment, the number of selectedcharacterization points is a number C=V * W, where V is an integernumber of t_(r(A)) coordinates and W is an integer number of C_(l(B))coordinates. For example, as shown in FIG. 8, system 100 may select sixcharacterization points 904, 906, 908, 910, 912 and 914 (from among thecandidate points) by selecting V=3 t_(r(A)) coordinates and W=2 C_(l(B))coordinates. Similarly, as another example, system 100 may select ninecharacterization points (from among the candidate points) by selectingV=3 t_(r(A)) coordinates and W=3 C_(l(B)) coordinates.

[0093]FIG. 9 is a table, indicated generally at 950, ofN^(2 information entries R) _(A,B) associated with theN^(2 candidate points (t) _(r(A)), C_(l(B))), respectively. Finitememory and runtime limits of system 100 impose practical constraints onthe size of tables such as table 950. Relative to larger tables, smallertables consume fewer resources of system 100, but smaller tables mayresult in larger errors.

[0094] Preferably, in accordance with the discussion hereinabove inconnection with FIG. 7, system 100 selects characterization points (i.e.a subset of candidate points (t_(r(A)), C_(l(B)))) in the mannerdiscussed further hereinbelow, so that system 100 more accuratelydetermines an estimated value of r (in response to particular values oft_(r) and C_(l) which define a point X). By more accurately determiningthis estimated value of r, system 100 more accurately executes a statictiming analysis software package in response to such estimate, so thatsystem 100 more accurately analyzes timing interrelationships betweenmultiple characterized cells that are coupled to one another withinintegrated electronic circuitry.

[0095] For each identified candidate point (t_(r(A)), C_(l(B))), system100 executes SPICE for determining a respective value of r(r_(SPICE)) inresponse to the particular values of t_(r) and C_(l) which collectivelydefine such candidate point. Accordingly, system 100 generates (with,and according to, the computer-implemented SPICE model of thecharacterized cell's operation(s)) a first set of estimates of thecharacterized cell's operation(s) in response to a set of conditions,respectively. The first set of estimates is formed by the respectivevalues of r(r_(SPICE)), and the set of conditions is formed byrespective combinations of values of t_(r) and C_(l) which collectivelydefine the candidate points. For example, (a) a first condition (of theset of conditions) is a particular value of t_(r) in combination with aparticular value of C_(l), which collectively define a particularcandidate point, and (b) the first condition's respectively associatedfirst estimate (which is one estimate of the first set of estimates) isa particular value of r(r_(SPICE)) that system 100 determines byexecuting SPICE in response to the first condition.

[0096] Then, system 100 determines (for each candidate point) the errorsresulting from selection of such candidate point, and system 100compares such errors to one another. Potentially, any candidate pointmay form the lower left corner (i.e. lowest values of A and B) of aregion that includes a subset of other candidate points. Accordingly, ina significant aspect of the illustrative embodiment, for each candidatepoint (t_(r(A=X), C_(l(B=y))), system 100 determines the errorsresulting from selection of such candidate point.

[0097] More particularly, in the illustrative embodiment, system 100determines such errors (resulting from selection of candidate point(t_(r(A=X), C_(l(B=Y)))) by performing the following steps. First,system 100 determines real numbers A, B, C and D of the characteristicequation (e.g. equation (1)) in response to candidate points(t_(r(A=X)), C_(l(B=Y))), (t_(r(A=X)), C_(l(B=P=(N−1)))),(t_(r(A=M=(N−1))), C_(l(B=Y))) and (t_(r(A=M=(N−1))), C_(l(B=P=(N−1)))),as discussed further hereinabove in connection with FIG. 7. (Notably, asmentioned hereinabove, real numbers A and B of equation (1) are distinctfrom integers A and B of the candidate points.)

[0098] After determining real numbers A, B, C and D of thecharacteristic equation, system 100:

[0099] (a) for each candidate point (t_(r(X<A<M)), C_(l(Y<B<P))),determines a respective value of r (r_(interpolate)) in response to theparticular values of t_(r) and C_(l) which collectively define suchcandidate point, in accordance with such characteristic equation andsuch determined values of A, B, C and D;

[0100] (b) for each candidate point (t_(r(X<A<M)), C_(l(Y<B<P))),determines a respective absolute difference between such candidatepoint's respective value of interpolate and such candidate point'srespective value of r_(SPICE);

[0101] (c) determines a sum of all such absolute differences for allcandidate points (t_(r(X<A<M)), C_(l(Y<B<P))); and

[0102] (d) stores such sum at entry R_(A=X,B=Y) (of table 950)associated with candidate point (t_(r(A=X)), C_(l(B=Y))), such sum beingthe error resulting from selection of such candidate point “incombination with point (t_(r(A=M)), C_(l(B=P)))”.

[0103] The above-described steps have been described for a situationwhere (a) candidate point (t_(r(A=X)), C_(l(B=Y))) forms the lower leftcorner (i.e. lowest values of A and B) of a region that includes asubset of other candidate points and (b) point (t_(r(A=M=(N−1))),C_(l(B=P=(N−1)))) forms the upper right corner (i.e. highest values of Aand B) of such region.

[0104] System 100 repeats the above-described steps once per each othercandidate point (t_(r(X<A<(N−1))), C_(l(Y<B<(N−1)))) forming the upperright corner of such region, so that (in the illustrative embodiment)system 100 repeats the above-described steps a total of {[(N−X) *(N−Y)]−(N−X)−(N−Y)} times for a particular combination of X and Y.

[0105] Moreover, system 100 repeats the above-described steps once pereach other candidate point (t_(r(0<X<(N−1))), C_(l(0<Y<(N−1)))) formingthe lower left corner of such region, so that (in the illustrativeembodiment) system 100 repeats the above-described steps (includingsteps described in the immediately preceding paragraph) a total of(N²−2*N) times.

[0106] Thus, aggregately, in the illustrative embodiment, system 100performs the above-described steps a total of Z times, including theoriginal performance and the repeated performances, where:$Z = {\left\lbrack {N^{2} - \left( {2*N} \right) + 1} \right\rbrack*{\underset{\begin{matrix}{X = 0} \\{Y = 0}\end{matrix}}{\sum\limits^{\substack{N - 2 \\ N - 2}}}{\left\{ {\left\lbrack {\left( {N - X} \right)*\left( {N - Y} \right)} \right\rbrack - \left( {N - X} \right) - \left( {N - Y} \right) + 1} \right\}.}}}$

[0107] Accordingly, for each condition (e.g. the first condition),system 100 generates (with, and according to, the computer-implementedcharacteristic equation model of the characterized cell's operation(s))a respectively associated second set of estimates of the characterizedcell's operation(s) in response to such condition, and further inresponse to various subsets of the first set of estimates (i.e. system100 determines real numbers A, B, C and D of the characteristic equationin response to a subset of the first set of estimates). For example, inthe illustrative embodiment, each subset includes (and is respectivelyassociated with) four values of r_(SPICE) that are respectivelyassociated with four candidate points which form four corners of aparticular region. Each condition's respectively associated second setof estimates is formed by the values of r(r_(interpolate)) that system100 determines in response to such condition. Such values arerespectively associated with different regions that have differentcorners formed by different candidate points; thus, such values and suchregions are respectively associated with different sets of values forreal numbers A, B, C and D of the characteristic equation.

[0108] As discussed further hereinbelow in connection with FIGS. 10 and11, in response to a comparison between a condition's (e.g. the firstcondition's) (a) respectively associated first estimate and (b)respectively associated second set of estimates, system 100 selects asubset of the first set of estimates. Also, system 100 executes a statictiming analysis software package in which system 100 determines realnumbers A, B, C and D of the characteristic equation in response to theselected subset. Moreover, in executing the static timing analysissoftware package, system 100 generates (with, and according to, thecomputer-implemented characteristic equation model of the characterizedcell's operation(s)) estimates of the characterized cell's operation(s)in response to (a) respectively associated conditions (e.g. eachcondition being a particular value of t_(r) in combination with aparticular value of C_(l)) and (b) such determined real numbers A, B, Cand D. Advantageously, in executing the static timing analysis softwarepackage, system 100 generates such estimates without regard to (andindependent of, and irrespective of) whether the conditions definepreviously identified candidate points.

[0109]FIG. 10 is an illustration of a first multi-stage version of thetechnique discussed hereinabove in connection with FIG. 9. In themulti-stage versions, system 100 determines (according to a multi-stageapproach) the errors resulting from selection of candidate point(t_(r(A=X)), C_(l(B=Y))), for a situation where (a) candidate point(t_(r(A=X)), C_(l(B=Y))) forms the lower left corner of a region thatincludes a subset of other candidate points and (b) point(t_(r(A=M=(N−1))), C_(l(B=P=(N−1)))) forms the upper right corner ofsuch region. Under the multi-stage approach, system 100 determines amulti-stage error by adding the errors of all “subregions” includedwithin such region.

[0110] For example, as indicated in FIG. 10, for an entry 1102 beingR_(S,W) associated with point (t_(r(S)), C_(l(W))), where X<S<(N−1), andwhere Y<W<(N−1), system 100 determines a 2-stage error by adding:

[0111] (a) the error (“subregion 1 error”) stored at entry R_(X,Y) forthe situation where point (t_(r(S)), C_(l(W))) forms the upper rightcorner of subregion 1 of FIG. 10 (i.e. the error resulting fromselection of candidate point (t_(r(X)), C_(l(Y))) in combination withpoint (t_(r(S)), C_(l(W))));

[0112] (b) the error (“subregion 2 error”) stored at entry R_(S,W) forthe situation where point (t_(r(N−1)), C_(l(N−1))) forms the upper rightcorner of subregion 2 of FIG. 10;

[0113] (c) the error (“subregion 3 error”) stored at entry R_(X,W) forthe situation where point (t_(r(S)), C_(l(N−1))) forms the upper rightcorner of subregion 3 of FIG. 10; and

[0114] (d) the error (“subregion 4 error”) stored at entry R_(S,Y) forthe situation where point (t_(r(N−1)), C_(l(W))) forms the upper rightcorner of subregion 4 of FIG. 10.

[0115] With regard to the error determined as a result of such addition,such error is the 2-stage error resulting from selection of candidatepoint (t_(r(X)), C_(l(Y))) “in combination with point (t_(r(S)),C_(l(W))) as an intermediate point to point (t_(r(N −1)), C_(l(N−1)))”.

[0116] For each candidate point (t_(r(X)), C_(l(Y))), system 100determines such a 2-stage error for all integer values of S and W, whereX<S<(N−1), and where Y<W<(N−1). Moreover, for each candidate point(t_(r(X)), C_(l(Y))), system 100 determines the intermediate point(t_(r(S)), C_(l(W))) for which the 2-stage error is smallest.Accordingly, at entry R_(X,Y) (of table 950) associated with candidatepoint (t_(r(X)), C_(l(Y))), system 100 stores an indication of the point(t_(r(S)), C_(l(W))) for which the 2-stage error is smallest, along withthe value of that smallest 2-stage error.

[0117]FIG. 11 is an illustration of a second multi-stage version of thetechnique discussed hereinabove in connection with FIG. 10. In FIG. 11,entry 1202 is R_(X,Y) associated with point (t_(r(X)), C_(l(Y))) of FIG.10. For determining a 3-stage error resulting from selection of acandidate point (t_(r(A)), C_(l(B))), where A<X and/or B<Y, system 100adds the smallest 2-stage error of FIG. 10 (i.e. the 2-stage errorstored by system 100 at entry R_(X,Y)) to (a) a “subregion 1 error” ofFIG. 11, (b) a “subregion 3 error” of FIG. 11, (c) a “subregion 4 error”of FIG. 11, (d) a “subregion 5 error” of FIG. 11, and (d) a “subregion 6error” of FIG. 11. System 100 performs such addition of the subregion 1,3, 4, 5 and 6 errors of FIG. 11 in a manner analogous to the manner inwhich system 100 performs addition of the regions 1, 2, 3 and 4 errorsof FIG. 10 as discussed further hereinabove.

[0118] For each candidate point (t_(r(X)), C_(l(Y))), system 100determines such a 3-stage error for all possible combinations of 2intermediate points between point (t_(r(X)), C_(l(Y))) and point(t_(r(N−1)), C_(l(N−1))). Moreover, for each candidate point (t_(r(X)),C_(l(Y))), system 100 determines the 2 intermediate points for which the3-stage error is smallest. Accordingly, at entry R_(X,Y) (of table 950)associated with candidate point (t_(r(X)), C_(l(Y))), system 100 storesan indication of the 2 intermediate points for which the 3-stage erroris smallest, along with the value of that smallest 3-stage error.

[0119] Likewise, where (c+2)² is a number of characterization points tobe selected by system 100 (including the four corner points discussedfurther hereinabove in connection with FIG. 8), system 100 determines(for corner point (t_(r(0)), C_(l(0)))) a (c+1)-stage error for allpossible combinations of c intermediate points between corner point(t_(r(0)), C_(l(0))) and corner point (t_(r(N−1)), C_(l(N−1))).Moreover, for corner point (t_(r(0)), C_(l(0))), system 100 determinesthe c intermediate points for which the (c+1)-stage error is smallest.Accordingly, at entry R_(0,0) (of table 950) associated with cornerpoint (t_(r(0)), C_(l(0))), system 100 stores an indication of the cintermediate points for which the (c+1)-stage error is smallest, alongwith the value of that smallest (c+1)-stage error.

[0120] By selecting the c intermediate points as characterizationpoints, system 100 selects (c+2)² characterization points (including thecorner points discussed further hereinabove in connection with FIG. 8).For example, referring FIG. 11, by selecting three intermediate points(t_(r(A)), C_(l(B))) associated with entries 1102, 1202 and 1204, system100 selects (3+2)²=25 characterization points, namely (a) the threeintermediate points (t_(r(A)), C_(l(B))) associated with entries 1102,1202 and 1204, (b) the four corner points (t_(r(0)), C_(l(0))),(t_(r(0)), C_(l(N−1))), (t_(r(N−1)), C_(l(N−1))) and (t_(r(N−1)),C_(l(0))) associated with entries 1206, 1208, 1210 and 1212,respectively, (c) the side points (t_(r(A)), C_(l(B))) associated withentries 1214, 1216, 1218, 1220, 1222, 1224, 1226, 1228, 1230, 1232, 1234and 1236, and (d) the interior points (t_(r(A)), C_(l(B))) associatedwith entries 1238, 1240, 1242, 1244, 1246 and 1248.

[0121] In an alternative embodiment, system 100 performs the techniquesdiscussed further hereinabove in connection with FIGS. 9, 10 and 11 fortwo different cases, namely:

[0122] (a) a first case in which the candidate points are only points(t_(r(A)), C_(l(0))) and (t_(r(A)), C_(l(N−1))), where A is an integernumber ranging between 0 and N−1 (i.e. a total of 2*N candidate points),so that aggregately system 100 performs the steps (a) through (d) whichare discussed further hereinabove in connection with FIG. 9 a total of Ztimes, including original and repeated performances, where:${Z = {\left( {N - 1} \right)*{\sum\limits_{X = 0}^{N - 2}\left\lbrack {\left( {N - X} \right) - 1} \right\rbrack}}};\quad {and}$

[0123] (b) a second case in which the candidate points are only points(t_(r(0)), C_(l(B))) and (t_(r(N−1)), C_(l(B))), where B is an integernumber ranging between 0 and N−1 (i.e. a total of 2*N candidatepoints)), so that aggregately system 100 performs the steps (a) through(d) which are discussed further hereinabove in connection with FIG. 9 atotal of Z times, including original and repeated performances, where:$Z = {\left( {N - 1} \right)*{\sum\limits_{Y = 0}^{N - 2}{\left\lbrack {\left( {N - Y} \right) - 1} \right\rbrack.}}}$

[0124] In such an alternative embodiment, where (j * k) is a number ofcharacterization points to be selected by system 100 (including the fourcorner points discussed further hereinabove in connection with FIG. 8),system 100:

[0125] (a) in the first case, determines (for corner point (t_(r(0)),C_(l(0)))) a (j−1)-stage error for all possible combinations of (j−2)intermediate points (t_(r(S)), C_(l(0))), between corner point(t_(r(0)), C_(l(0))) and corner point (t_(r(N−1)), C_(l(N−1))), alongwith the (j−2) intermediate points for which the (j−1)-stage error issmallest; and

[0126] (b) in the second case, determines (for corner point (t_(r(0)),C_(l(0)))) a (k−1)-stage error for all possible combinations of (k−2)intermediate points (t_(r(0)), C_(l(W))), between corner point(t_(r(0)), C_(l(0))) and corner point (t_(r(N−1)), C_(l(N−1))), alongwith the (k−2) intermediate points for which the (k−1)-stage error issmallest.

[0127] Accordingly, at entry R_(0,0) (of table 950) associated withcorner point (t_(r(0)), C_(l(0))), system 100 stores an indication of:

[0128] (a) the (j−2) intermediate points for which the (j−1)-stage erroris smallest, along with the value of that smallest (j−1)-stage error;and

[0129] (a) the (k−2) intermediate points for which the (k−1)-stage erroris smallest, along with the value of that smallest (k−1)-stage error.

[0130] By selecting the (j−2) intermediate points and the (k−2)intermediate points as characterization points, system 100 selects (j *k) characterization points (including the corner points discussedfurther hereinabove in connection with FIG. 8). For example, referringFIG. 11, by selecting three intermediate points (t_(r(A)), C_(l(0)))associated with entries 1232, 1234 and 1236, along with threeintermediate points (t_(r(0)), C_(l(B))) associated with entries 1214,1216 and 1218, system 100 selects 5²=25 characterization points, namely(a) the three intermediate points (t_(r(A)), C_(l(0))) associated withentries 1232, 1234 and 1236, (b) the three intermediate points(t_(r(0)), C_(l(B))) associated with entries 1214, 1216 and 1218, (c)the four corner points (t_(r(0)), C_(l(0))), (t_(r(0)), C_(l(N−1))),t_(r(N−1)), C_(l(N−1))) and (t_(r(N−1)), C_(l(0))) associated withentries 1206, 1208, 1210 and 1212, respectively, (d) the side points(t_(r(A)), C_(l(B))) associated with entries 1220, 1222, 1224, 1226,1228 and 1230, and (e) the interior points (t_(r(A)), C_(l(B)))associated with entries 1102, 1202, 1204, 1238, 1240, 1242, 1244, 1246and 1248.

[0131] Such an alternative embodiment advantageously consumes less timeand fewer computer resources, relative to performing the techniques ofFIGS. 9, 10 and 11 for N² candidate points (t_(r(A)), C_(l(B))) in theillustrative embodiment. However, by selecting the characterizationpoints according to such an alternative embodiment, system 100 mightless accurately (in comparison to the illustrative embodiment) determinean estimated value of r (in response to the particular values of t_(r)and C_(l) which define point X). By less accurately determining thisestimated value of r, system 100 would less accurately execute thestatic timing analysis software package in response to such estimate, sothat system 100 would less accurately analyze timing interrelationshipsbetween multiple characterized cells that are coupled to one anotherwithin integrated electronic circuitry.

[0132]FIG. 12 is a graph, indicated generally at 1200, of averagepercentage error as a function of C_(l) and t_(r) where characterizationpoints were manually selected (after several iterations) by a humanwithout the technique of the illustrative embodiment. In connection withFIG. 12, for each measured point (t_(r(A)), C_(l(B))), system 100:

[0133] (a) determined a respective value of r(r_(interpolate)) inresponse to the particular values of t_(r) and C_(l) which define suchmeasured point, in accordance with the technique discussed furtherhereinabove in connection with FIG. 7;

[0134] (b) executed SPICE for determining a respective value ofr(r_(SPICE)) in response to the particular values of t_(r) and C_(l)which define such measured point; and

[0135] (c) determined the percentage error between r_(interpolate) andr_(SPICE).

[0136] Such percentage errors are graphically illustrated on graph 1200as a function of C_(l) and t_(r). As shown in FIG. 12, the largesterrors occur for smaller values of C_(l) and t_(r). This is ashortcoming, because cells in critical timing paths are most likely tohave smaller values of C_(l) and t_(r).

[0137]FIG. 13 is a graph, indicated generally at 1300, of averagepercentage error as a function of C_(l) and t_(r), wherecharacterization points were automatically selected by system 100 inaccordance with the technique of the illustrative embodiment. Inconnection with FIG. 13, system 100 determined the percentage errors inthe same manner as discussed further hereinabove in connection with FIG.12. As shown in FIG. 13, the errors are primarily limited to ±0.2%,which is substantially improved over the errors shown in FIG. 12.

[0138] In connection with FIG. 13, table 950 (FIG. 9) occupied 3.125million double-word values, or approximately 25 Mb, of memory withinsystem 100. Within approximately 17 CPU (central processing unit)minutes, system 100 selected c=8 intermediate characterization pointsbetween corner point (t_(r(0)), C_(l(0))) and corner point (t_(r(N−1)),C_(l(N−1))). System 100 used approximately 16 of the 17 CPU minutes toperform the steps discussed further hereinabove in connection with FIG.9. In another example, system 100 selected c=6 intermediatecharacterization points between corner point (t_(r(0)), C_(l(0))) andcorner point (t_(r(N−1)), C_(l(N−1))) within only approximately 9 CPUminutes.

[0139] In yet another example, where characterization points wereautomatically selected by system 100 in accordance with the technique ofthe alternative embodiment discussed further hereinabove in connectionwith FIG. 11, the percentage errors were up to three times (3×) higherthan errors shown in FIG. 13. Advantageously, however, system 100selected c=8 intermediate characterization points between corner point(t_(r(0)), C_(l(0))) and corner point (t_(r(N−1)), C_(l(N−1))) withinonly approximately 5 CPU seconds, and table 950 (FIG. 9) occupied lessthan 100 Kb of memory within system 100. Moreover, the errors wereprimarily limited to ±0.5% through −0.8%, which is still substantiallyimproved over the errors shown in FIG. 12.

[0140]FIG. 14 is a schematic electrical circuit diagram of circuitry1400, including a biased path, created according to the illustrativeembodiment. System 100 has characterized a standard cell library inaccordance with the technique of the illustrative embodiment. Thelibrary included almost 2000 standard cells. With components from thelibrary, system 100 creates (or “synthesizes”) a design of circuitry(e.g. circuitry 1400).

[0141] For verifying accuracy of the characterization, system 100executes the Synopsys static timing analysis software package toidentify critical timing paths within the design. More particularly,system 100 identifies components along a critical timing path, plus anysecondary components. As shown in FIG. 14, according to a techniquereferred to as tertiary loading, output nodes of secondary componentsare connected to respective capacitors having capacitive valuessubstantially matched to respective loads driven by such nodes. Also, asshown in FIG. 14, with regard to nodes outside the critical timing pathand apart from secondary components, such nodes are biased to V_(CC) orV_(SS) for the purpose of propagating the signal from an input node 1502to an output node 1504.

[0142] After identifying the critical timing path, performing tertiaryloading of output nodes of secondary components, and biasing nodesoutside the critical timing path and apart from secondary components:system 100 executes SPICE in response to such information, and system100 measures results therefrom at input nodes and output nodes of cellswithin the design. Such results are t_(in), t_(out) and t_(d) asdiscussed further hereinabove in connection with FIG. 4. System 100 isable to compare such results against measurements from the Synopsysstatic timing analysis software package (executed by system 100).

[0143] System 100 has performed such verification for over 200 differentcritical timing paths that include cells characterized according to theillustrative embodiment. Over 98% of the paths had cumulative pathdelays (e.g. cumulative path delay between input node 1502 and outputnode 1504) with error margins less than 2% to 4%. Accordingly, thestatic timing delays measured from the Synopsys static timing analysissoftware package (executed by system 100) were usually 2% to 4% greaterthan those measured from SPICE (executed by system 100).

[0144] In the illustrative embodiment, the characterization technique ofsystem 100 is implemented on a UNIX operating system using a C++programming language. Also, in the illustrative embodiment, system 100performs solution of the characteristic equation by LU decomposition andforward and backward substitution. The version of SPICE in theillustrative embodiment is HSPICE, commercially available from Avant!Corporation, having an address at 46871 Bayside Parkway Fremont, Calif.94538, a telephone number (510) 413-8000, and a facsimile number (510)413-8080.

[0145] Although an illustrative embodiment and its advantages have beendescribed in detail hereinabove, they have been described as example andnot as limitation. Various changes, substitutions and alterations can bemade in the illustrative embodiment without departing from the breadth,scope and spirit of the claims.

What is claimed is:
 1. A system, comprising: a computer for: accordingto a first model of an operation of circuitry, generating a first set ofestimates of the operation in response to a set of conditions, includinga first estimate of the operation in response to a first condition;according to a second model of the operation, generating a second set ofestimates of the operation in response to the first condition and thefirst set; in response to a comparison between the first estimate andthe second set, selecting a subset of the first set; and according tothe second model, generating an estimate of the operation in response toa second condition and the selected subset.
 2. The system of claim 1wherein the first model includes a circuit simulator.
 3. The system ofclaim 1 wherein the second model includes a characteristic equation. 4.The system of claim 3 wherein the second model includes acharacterization table that includes the characteristic equation.
 5. Thesystem of claim 3 wherein the second model is a static timing analysismodel including the characteristic equation.
 6. The system of claim 3wherein the computer is for generating the second set by: determiningrespective sets of constant elements of the characteristic equation inresponse to subsets of the first set; and according to thecharacteristic equation, in response to the first condition, generatingthe second set including respective estimates of the operation inresponse to the sets of constant elements.
 7. The system of claim 6wherein the computer is for selecting the selected subset from among thesubsets of the first set in response to the comparison, the comparisonbeing a comparison between the first estimate and the estimates of thesecond set.
 8. The system of claim 7 wherein: the subsets of the firstset are respectively associated with the sets of constant elements, sothe selected subset of the first set is associated with a particular setof constant elements; the estimates of the second set are respectivelyassociated with the sets of constant elements, so a particular estimateof the second set is associated with the particular set of constantelements; and among the estimates of the second set, the particularestimate is closest to the first estimate.
 9. The system of claim 1wherein the operation is a response time of the circuitry.
 10. Thesystem of claim 1 wherein the operation is a propagation delay of thecircuitry.
 11. The system of claim 1 wherein the conditions include atleast two types of conditions.
 12. The system of claim 1 wherein theconditions include at least three types of conditions.
 13. The system ofclaim 1 wherein the conditions include capacitive loadings of thecircuitry.
 14. The system of claim 1 wherein the conditions includeinput transition times of the circuitry.
 15. The system of claim 14wherein the conditions include at least two types of input transitiontimes of the circuitry.
 16. The system of claim 1 wherein the circuitryis integrated circuitry.
 17. A method, comprising: with a firstcomputer-implemented model of an operation of circuitry, generating afirst set of estimates of the operation in response to a set ofconditions, including a first estimate of the operation in response to afirst condition; with a second computer-implemented model of theoperation, generating a second set of estimates of the operation inresponse to the first condition and the first set; in response to acomparison between the first estimate and the second set, selecting asubset of the first set; and with the second computer-implemented model,generating an estimate of the operation in response to a secondcondition and the selected subset.
 18. The method of claim 17 whereinthe generating of the first set of estimates comprises: with the firstcomputer-implemented model of the operation, generating the first set ofestimates of the operation in response to the set of conditions, thefirst computer-implemented model including a circuit simulator.
 19. Themethod of claim 17 wherein the generating of the second set of estimatescomprises: with the second computer-implemented model of the operation,generating the second set of estimates, the second computer-implementedmodel including a characteristic equation.
 20. The method of claim 20wherein the generating of the second set of estimates comprises: withthe second computer-implemented model of the operation, generating thesecond set of estimates, the second computer-implemented model includinga characterization table that includes the characteristic equation. 21.The method of claim 20 wherein the generating of the second set ofestimates comprises: with the second computer-implemented model of theoperation, generating the second set of estimates, the secondcomputer-implemented model being a static timing analysis modelincluding the characteristic equation.
 22. The method of claim 20wherein the generating of the second set of estimates comprises:determining respective sets of constant elements of the characteristicequation in response to subsets of the first set; and according to thecharacteristic equation, in response to the first condition, generatingthe second set including respective estimates of the operation inresponse to the sets of constant elements.
 23. The method of claim 22wherein the selecting of the subset comprises: selecting the selectedsubset from among the subsets of the first set in response to thecomparison, the comparison being a comparison between the first estimateand the estimates of the second set.
 24. The method of claim 23 whereinthe selecting of the subset comprises: selecting the selected subsetfrom among the subsets of the first set in response to the comparison,the subsets of the first set being respectively associated with the setsof constant elements, so the selected subset of the first set isassociated with a particular set of constant elements; the estimates ofthe second set being respectively associated with the sets of constantelements, so a particular estimate of the second set is associated withthe particular set of constant elements; and among the estimates of thesecond set, the particular estimate being closest to the first estimate.25. The method of claim 17 wherein the generating of the first set ofestimates comprises: with the first computer-implemented model of theoperation, generating the first set of estimates of the operation inresponse to the set of conditions, the operation being a response timeof the circuitry.
 26. The method of claim 17 wherein the generating ofthe first set of estimates comprises: with the firstcomputer-implemented model of the operation, generating the first set ofestimates of the operation in response to the set of conditions, theoperation being a propagation delay of the circuitry.
 27. The method ofclaim 17 wherein the generating of the first set of estimates comprises:with the first computer-implemented model of the operation, generatingthe first set of estimates of the operation in response to the set ofconditions, the conditions including at least two types of conditions.28. The method of claim 17 wherein the generating of the first set ofestimates comprises: with the first computer-implemented model of theoperation, generating the first set of estimates of the operation inresponse to the set of conditions, the conditions including at leastthree types of conditions.
 29. The method of claim 17 wherein thegenerating of the first set of estimates comprises: with the firstcomputer-implemented model of the operation, generating the first set ofestimates of the operation in response to the set of conditions, theconditions including capacitive loadings of the circuitry.
 30. Themethod of claim 17 wherein the generating of the first set of estimatescomprises: with the first computer-implemented model of the operation,generating the first set of estimates of the operation in response tothe set of conditions, the conditions including input transition timesof the circuitry.
 31. The method of claim 30 wherein the generating ofthe first set of estimates comprises: with the firstcomputer-implemented model of the operation, generating the first set ofestimates of the operation in response to the set of conditions, theconditions including at least two types of input transition times of thecircuitry.
 32. The method of claim 17 wherein the generating of thefirst set of estimates comprises: with the first computer-implementedmodel of the operation, generating the first set of estimates of theoperation in response to the set of conditions, the circuitry beingintegrated circuitry.
 33. A computer program product, comprising: acomputer application processable by a computer for causing the computerto: according to a first model of an operation of circuitry, generate afirst set of estimates of the operation in response to a set ofconditions, including a first estimate of the operation in response to afirst condition; according to a second model of the operation, generatea second set of estimates of the operation in response to the firstcondition and the first set; in response to a comparison between thefirst estimate and the second set, select a subset of the first set; andaccording to the second model, generate an estimate of the operation inresponse to a second condition and the selected subset; and apparatusfrom which the computer application is accessible by the computer. 34.The computer program product of claim 33 wherein the first modelincludes a circuit simulator.
 35. The computer program product of claim33 wherein the second model includes a characteristic equation.
 36. Thecomputer program product of claim 35 wherein the second model includes acharacterization table that includes the characteristic equation. 37.The computer program product of claim 35 wherein the second model is astatic timing analysis model including the characteristic equation. 38.The computer program product of claim 35 wherein the computerapplication is processable by the computer for causing the computer togenerate the second set by: determining respective sets of constantelements of the characteristic equation in response to subsets of thefirst set; and according to the characteristic equation, in response tothe first condition, generating the second set including respectiveestimates of the operation in response to the sets of constant elements.39. The computer program product of claim 38 wherein the computerapplication is processable by the computer for causing the computer toselect the selected subset from among the subsets of the first set inresponse to the comparison, the comparison being a comparison betweenthe first estimate and the estimates of the second set.
 40. The computerprogram product of claim 39 wherein: the subsets of the first set arerespectively associated with the sets of constant elements, so theselected subset of the first set is associated with a particular set ofconstant elements; the estimates of the second set are respectivelyassociated with the sets of constant elements, so a particular estimateof the second set is associated with the particular set of constantelements; and among the estimates of the second set, the particularestimate is closest to the first estimate.
 41. The computer programproduct of claim 33 wherein the operation is a response time of thecircuitry.
 42. The computer program product of claim 33 wherein theoperation is a propagation delay of the circuitry.
 43. The computerprogram product of claim 33 wherein the conditions include at least twotypes of conditions.
 44. The computer program product of claim 33wherein the conditions include at least three types of conditions. 45.The computer program product of claim 33 wherein the conditions includecapacitive loadings of the circuitry.
 46. The computer program productof claim 33 wherein the conditions include input transition times of thecircuitry.
 47. The computer program product of claim 46 wherein theconditions include at least two types of input transition times of thecircuitry.
 48. The computer program product of claim 33 wherein thecircuitry is integrated circuitry.